/* 单例模式 场景： 一个全局弹窗 内置单例 Math global globalThis */

class Single1{
    static instance ;
    constructor(){
/* 如果构造函数返回一个非空对象 则返回该对象 否则 返回新建对象 */
        if(Single1.instance){
            return Single1.instance
        }
    }
}

class Single2{

}
/* fn为某构造函数 */
function getSingle(fn){

    let instance ;
    return function(...arg){
        if(!instance){
            instance =new fn(...arg) 
        }
    }
}